package entities.vo;

import java.util.Vector;

public class ArticuloPalcVO implements ItemTablaVO,Comparable<ArticuloPalcVO> {

	private static final long serialVersionUID = 3830472595850255085L;
	private Integer 	referencia;
    private Integer 	stock;//stock del articulo
    private String 		descripcion; //descripcion del articulo
    private Float		precio;
    private Float		precioOferta;
    private Boolean 	disponibleOfad; //indica si esta disponible en la Ofad
    private Integer		cantidadVendida; //cantidad vendida en la ultima semana
    private Integer 	cantidadPendiente;
    private Integer 	puntoPedido; //es el punto de pedido del articulo
    private Integer		cantidadPedida; //es lo que se va a pedir en la PALC

    public Integer getCantidadPedida() {
		return cantidadPedida;
	}

	public void setCantidadPedida(Integer cantidadPedida) {
		this.cantidadPedida = cantidadPedida;
	}

	public ArticuloPalcVO() {
    	setStock(0);
    	setPrecio(0F);    	
    	setPrecioOferta(0F);
    	setDisponibleOfad(Boolean.FALSE);
    	setCantidadVendida(0);
    	setCantidadPendiente(0);
    	setPuntoPedido(0);
	}

	public Integer getReferencia() {
		return referencia;
	}

	public void setReferencia(Integer referencia) {
		this.referencia = referencia;
	}

	public Integer getStock() {
		return stock;
	}

	public void setStock(Integer stock) {
		this.stock = stock;
	}

	public String getDescripcion() {
		return descripcion;
	}

	public void setDescripcion(String descripcion) {
		this.descripcion = descripcion;
	}

	public Float getPrecio() {
		return precio;
	}

	public void setPrecio(Float precio) {
		this.precio = precio;
	}

	public Float getPrecioOferta() {
		return precioOferta;
	}

	public void setPrecioOferta(Float precioOferta) {
		this.precioOferta = precioOferta;
	}

	public Boolean getDisponibleOfad() {
		return disponibleOfad;
	}

	public void setDisponibleOfad(Boolean disponibleOfad) {
		this.disponibleOfad = disponibleOfad;
	}

	public Integer getCantidadVendida() {
		return cantidadVendida;
	}

	public void setCantidadVendida(Integer cantidadVendida) {
		this.cantidadVendida = cantidadVendida;
	}

	public Integer getCantidadPendiente() {
		return cantidadPendiente;
	}

	public void setCantidadPendiente(Integer cantidadPendiente) {
		this.cantidadPendiente = cantidadPendiente;
	}

	public Integer getPuntoPedido() {
		return puntoPedido;
	}

	public void setPuntoPedido(Integer puntoPedido) {
		this.puntoPedido = puntoPedido;
	}

	public int getId() {		
		return getReferencia();
	}

	public Vector<Object> toVector() {
		Vector<Object> v = new Vector<Object>();
		v.add(getReferencia());
		v.add(getStock());
		v.add(getDescripcion());
		v.add(getPrecio());
		v.add(getPrecioOferta());
		v.add(getDisponibleOfad());
		v.add(getCantidadVendida());
		v.add(getCantidadPendiente());
		v.add(getPuntoPedido());
		return v;
	}

	@Override
	public int hashCode() {
		final int prime = 31;
		int result = 1;
		result = prime * result
				+ ((referencia == null) ? 0 : referencia.hashCode());
		return result;
	}

	@Override
	public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (obj == null)
			return false;
		if (getClass() != obj.getClass())
			return false;
		final ArticuloPalcVO other = (ArticuloPalcVO) obj;
		if (referencia == null) {
			if (other.referencia != null)
				return false;
		} else if (!referencia.equals(other.referencia))
			return false;
		return true;
	}

	public int compareTo(ArticuloPalcVO o) {		
		return referencia.compareTo(o.getReferencia());
	}
    

}
